home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / vw_bof.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  118 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10650);
  10.  script_bugtraq_id(2579);
  11.  script_version ("$Revision: 1.18 $");
  12.  script_cve_id("CAN-2001-0432");
  13.  
  14.  
  15.  
  16.  name["english"] = "VirusWall's catinfo overflow";
  17.  
  18.  script_name(english:name["english"]);
  19.  
  20.  desc["english"] = "
  21. The remote cgi /catinfo seems to be vulnerable
  22. to a buffer overflow when it receives a too long
  23. input strings, allowing any user to execute arbitrary
  24. commands as root.
  25.  
  26. This CGI usually comes with the VirusWall suite.
  27.        
  28. Solution : if you are using VirusWall, upgrade to version 3.6, or
  29. else you *may* ignore this warning       
  30. Risk factor : High";
  31.  
  32.  
  33.  
  34.  
  35.  script_description(english:desc["english"]);
  36.  
  37.  summary["english"] = "Overflow in catinfo";
  38.  summary["francais"] = "Overflow dans catinfo";
  39.  
  40.  script_summary(english:summary["english"], francais:summary["francais"]);
  41.  
  42.  script_category(ACT_MIXED_ATTACK); # mixed
  43.  
  44.  
  45.  script_copyright(english:"This script is Copyright (C) 2001 Renaud Deraison",
  46.         francais:"Ce script est Copyright (C) 2001 Renaud Deraison");
  47.  family["english"] = "CGI abuses";
  48.  family["francais"] = "Abus de CGI";
  49.  script_family(english:family["english"], francais:family["francais"]);
  50.  script_dependencie("find_service.nes", "no404.nasl", "http_version.nasl");
  51.  script_require_ports("Services/www", 1812);
  52.  script_require_keys("www/cern");
  53.  exit(0);
  54. }
  55.  
  56. #
  57. # The script code starts here
  58. #
  59.  
  60.  
  61. #
  62. # We can not determine if the overflow actually took place or
  63. # not (as it took place when the CGI attempts to exit), so 
  64. # we check if the cgi dumbly spits a 2048 octets long name.
  65. #
  66. include("http_func.inc");
  67. include("http_keepalive.inc");
  68.  
  69. port = get_kb_item("Services/www");
  70. if(!port)port = 1812;
  71. if(!get_port_state(port))exit(0);
  72.  
  73. ok = is_cgi_installed_ka(item:"/catinfo", port:port);
  74. if(!ok)exit(0);
  75.  
  76. if(safe_checks())
  77. {
  78.  req = http_get(item:string("/catinfo?", crap(128)), port:port);
  79. soc = http_open_socket(port);
  80. send(socket:soc, data:req);
  81. code = recv_line(socket:soc, length:4096);
  82. if("404" >< code)exit(0);
  83. r = http_recv(socket:soc);
  84. http_close_socket(socket:soc);
  85. if(crap(128) >< r)
  86. {
  87.  report = "
  88. The remote cgi /catinfo seems to be vulnerable
  89. to a buffer overflow when it receives a too long
  90. input strings, allowing any user to execute arbitrary
  91. commands as root.
  92.  
  93. This CGI usually comes with the VirusWall suite.
  94.  
  95. *** Nessus reports this vulnerability using only
  96. *** information that was gathered. Use caution
  97. *** when testing without safe checks enabled.
  98.        
  99. Solution : if you are using VirusWall, upgrade to version 3.6, or
  100. else you *may* ignore this warning       
  101. Risk factor : High";
  102.   security_hole(port:port, data:report);
  103.  }
  104.  exit(0);
  105. }
  106.  
  107. req = http_get(item:string("/catinfo?", crap(2048)), port:port);
  108. soc = http_open_socket(port);
  109. send(socket:soc, data:req);
  110. code = recv_line(socket:soc, length:4096);
  111. if("404" >< code)exit(0);
  112. r = http_recv(socket:soc);
  113. http_close_socket(socket:soc);
  114. if(crap(2048) >< r)
  115. {
  116.   security_hole(port);
  117. }
  118.